<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="lib.css" type='text/css' />
<link rel="SHORTCUT ICON" href="../icons/pyfav.png" type="image/png" />
<link rel='start' href='../index.html' title='Python documentation Index' />
<link rel="first" href="lib.html" title='Python library Reference' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='index' href='genindex.html' title='Index' />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="module-timeit.html" />
<link rel="prev" href="node801.html" />
<link rel="parent" href="profile.html" />
<link rel="next" href="hotshot-objects.html" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name='aesop' content='information' />
<title>25.8 hotshot -- High performance logging profiler</title>
</head>
<body>
<div class="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="25.7 extensions  "
  href="node801.html"><img src='../icons/previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="25. the Python Profilers"
  href="profile.html"><img src='../icons/up.png'
  border='0' height='32'  alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="25.8.1 profile Objects"
  href="hotshot-objects.html"><img src='../icons/next.png'
  border='0' height='32'  alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">Python Library Reference</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='../icons/contents.png'
  border='0' height='32'  alt='Contents' width='32' /></a></td>
<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
  border='0' height='32'  alt='Module Index' width='32' /></a></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='../icons/index.png'
  border='0' height='32'  alt='Index' width='32' /></a></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="node801.html">25.7 Extensions  </a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="profile.html">25. The Python Profilers</a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="hotshot-objects.html">25.8.1 Profile Objects</a>
</div>
<hr /></div>
</div>
<!--End of Navigation Panel-->

<h1><a name="SECTION0027800000000000000000">
25.8 <tt class="module">hotshot</tt> --
         High performance logging profiler</a>
</h1>

<p>
<a name="module-hotshot"></a>

<p>

<span class="versionnote">New in version 2.2.</span>

<p>
This module provides a nicer interface to the <tt class="module">_hotshot</tt> C module.
Hotshot is a replacement for the existing <tt class="module"><a href="module-profile.html">profile</a></tt> module. As it's
written mostly in C, it should result in a much smaller performance impact
than the existing <tt class="module"><a href="module-profile.html">profile</a></tt> module.

<p>
<div class="note"><b class="label">Note:</b>

  The <tt class="module">hotshot</tt> module focuses on minimizing the overhead
  while profiling, at the expense of long data post-processing times.
  For common usages it is recommended to use <tt class="module">cProfile</tt> instead.
  <tt class="module">hotshot</tt> is not maintained and might be removed from the
  standard library in the future.
</div>

<p>

<span class="versionnote">Changed in version 2.5:
the results should be more meaningful than in the
past: the timing core contained a critical bug.</span>

<p>
<div class="warning"><b class="label">Warning:</b>

  The <tt class="module">hotshot</tt> profiler does not yet work well with threads.
  It is useful to use an unthreaded script to run the profiler over
  the code you're interested in measuring if at all possible.
</div>

<p>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
  <td><nobr><b><span class="typelabel">class</span>&nbsp;<tt id='l2h-5106' xml:id='l2h-5106' class="class">Profile</tt></b>(</nobr></td>
  <td><var>logfile</var><big>[</big><var>, lineevents</var><big>[</big><var>,
                           linetimings</var><big>]</big><var></var><big>]</big><var></var>)</td></tr></table></dt>
<dd>
The profiler object. The argument <var>logfile</var> is the name of a log
file to use for logged profile data. The argument <var>lineevents</var>
specifies whether to generate events for every source line, or just on
function call/return. It defaults to <code>0</code> (only log function
call/return). The argument <var>linetimings</var> specifies whether to
record timing information. It defaults to <code>1</code> (store timing
information).
</dl>

<p>

<p><br /></p><hr class='online-navigation' />
<div class='online-navigation'>
<!--Table of Child-Links-->
<a name="CHILD_LINKS"><strong>Subsections</strong></a>

<ul class="ChildLinks">
<li><a href="hotshot-objects.html">25.8.1 Profile Objects</a>
<li><a href="module-hotshot.stats.html">25.8.2 Using hotshot data</a>
<li><a href="hotshot-example.html">25.8.3 Example Usage</a>
</ul>
<!--End of Table of Child-Links-->
</div>

<div class="navigation">
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="25.7 extensions  "
  href="node801.html"><img src='../icons/previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="25. the Python Profilers"
  href="profile.html"><img src='../icons/up.png'
  border='0' height='32'  alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="25.8.1 profile Objects"
  href="hotshot-objects.html"><img src='../icons/next.png'
  border='0' height='32'  alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">Python Library Reference</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='../icons/contents.png'
  border='0' height='32'  alt='Contents' width='32' /></a></td>
<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
  border='0' height='32'  alt='Module Index' width='32' /></a></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='../icons/index.png'
  border='0' height='32'  alt='Index' width='32' /></a></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="node801.html">25.7 Extensions  </a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="profile.html">25. The Python Profilers</a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="hotshot-objects.html">25.8.1 Profile Objects</a>
</div>
</div>
<hr />
<span class="release-info">Release 2.5.1, documentation updated on 18th April, 2007.</span>
</div>
<!--End of Navigation Panel-->
<address>
See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
</address>
</body>
</html>
